package com.xxx.rpc.registry;

import com.xxx.rpc.client.RpcClient;

/**
 * 服务发现接口
 *
 * @author huangyong & Rosun
 * @since 1.0.0
 */
public interface ServiceDiscovery {

//    /**
//     * 根据服务名称查找服务地址
//     *
//     * @param serviceName 服务名称
//     * @return 服务地址
//     */
//	@Deprecated
//    String discover(String serviceName);
	
	
	/**
	 * @param serviceName 服务名称
	 * @param serviceVersion 服务版本；默认 "";
	 * @return
	 */
	public RpcClient discover(final String serviceName,final String serviceVersion) throws Exception;
	
	
	/**
	 * RpcClient 即将失效管理 的回调接口；本方法适用于长链接的客户端失效或者不再提供服务时回调用；<br>
	 * 回调执行后，执行discover 方法时 就不会得到失效的RpcClient 了；
	 * @param closingRpcClient 即将关闭的RpcClient 客户端;
	 */
	public void rpcClientCloseCallBack(RpcClient closingRpcClient);
}